//自定义验证，第一个参数 rule可以获取到验证对象中的所有值
import { Notification } from 'element-ui'
const validateUtil = {
   dynamic (rule, value, callback){
      let row = rule.row; //一行的值 是个对象
      let prop = rule.prop; //一行中的属性值
      let label = rule.label || ''; //一行中的属性名
      let ruleType = rule.ruleType; //扩展用的字段，用来判断那种验证规则
      if (ruleType == 'norule') { //没有验证规则
        callback()
      } else { //整数或者2位小数
        let cellValue = row[prop]
        if (!cellValue && cellValue != 0) {
          callback(new Error("请输入"))
        } else if (!(/^-?\d+(\.\d{1,2})?$/.test(cellValue))) {
          callback(new Error("整数或两位小数"))
        } else {
          callback()
        }
      }
    } ,

   //金额验证
   amount(rule,value,callback){
     // console.log("rule:",rule)
     // console.log("!value && value != 0:",!value && value != 0)
     if (!value){
       callback(new Error("请输入"+rule.label))
     }else if (!(/^-?\d+(\.\d{1,2})?$/.test(value))) {
       callback(new Error("整数或两位小数"))
     } else {
       callback()
     }
   },

   //开始时间结束时间验证
   beginAndEndTime(rule, value, callback) {
     let  startTime = rule.context.formData.bonusItemBegin ;
     let  endTime = rule.context.formData.bonusItemEnd ;
     if (startTime && endTime){ //开始时间和结束时间有值,进行比较
       if ( new Date(startTime).getTime() >  new Date(endTime).getTime() ){
         callback('开始时间不能小于结束时间')
       }else{
         callback()
       }
     }else if (!startTime && !endTime){
       callback('请选择开始时间和结束时间')
     }else{
       callback() ;
     }
  }
} ;

export default validateUtil ;

//验证集合中是否都是相同值
export function areAllElementsEqual(arr) {
  return arr.every(element => element === arr[0]);
}
